package cn.zjutleo.village_server.exception;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 运行期间API异常类
 *
 * @author Ma Xiaofeng
 * @date : Created in 2021/11/10
 **/
@EqualsAndHashCode(callSuper = true)
/**
 * 使用在使用@Data时同时加上@EqualsAndHashCode(callSuper=true)注解。
 * @Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法
 * 有多个类有相同的部分属性，把它们定义到父类中，恰好id（数据库主键）也在父类中，
 * 那么就会存在部分对象在比较时，它们并不相等，却因为lombok自动生成的equals(Object other) 和 hashCode()方法判定为相等，从而导致出错
 */
@Data
public class RuntimeApiException extends RuntimeException {
    //定义给前端返回的状态码
    private Integer code;

    public RuntimeApiException(String message, Integer code) {
        //将message消息放到RuntimeException的构造方法中
        super(message);
        this.code = code;
    }

    public RuntimeApiException() {
        super();
    }
}
